PRO_HOME	= ../..
PRO_INCL	= $(PRO_HOME)/include
REPO_HOME	= ../../../..
REPO_INCL	= $(REPO_HOME)/include
REPO_SRC	= $(REPO_HOME)/common/src
CUDA_HOME	= /usr/local/cuda
CUDA_INC	= $(CUDA_HOME)/include
CUDA_LIB	= $(CUDA_HOME)/libs

NVCC		= nvcc
NVCC_FLAGS	= -I$(CUDA_INC) -I$(PRO_INCL) -w -g -G
CC			= g++
CC_FLAGS	= -I$(PRO_INCL) -I$(REPO_INCL) -O3 -w -g
LIBS		= -L/usr/lib/ -lcuda

all: gpuconvolution

gpuconvolution: main.o bmpreader.o
	$(NVCC) -o $(REPO_HOME)/bin/$@ main.o bmpreader.o $(LIBS)

main.o: main.cu
	$(NVCC) $(NVCC_FLAGS) -c main.cu $(LIBS)

bmpreader.o: $(REPO_SRC)/bmpreader.cpp $(PRO_INCL)/bmpreader.h 
	$(CC) $(CC_FLAGS) -c $(REPO_SRC)/bmpreader.cpp

clean:
	rm -rf *.o convolution
